package me.softwareengineer.guice.rendering.parser;

import java.io.Reader;

import me.softwareengineer.guice.rendering.domain.DOM;
import me.softwareengineer.guice.rendering.domain.Syntax;

/**
 * Parses the {@link Reader} and converts to DOM tree
 * 
 * @author yadtahir
 * 
 */
public interface Parser {

	

	/**
	 * Parses the provided reader and returns the DOM tree representation
	 * 
	 * @param reader the data provider
	 * @return the DOM tree which represents the reader after parsing process.
	 * @exception ParseException Triggered when an error occured during the parsing process.
	 * @see DOM
	 * @see Reader
	 * @see ParseException
	 */
	DOM parse(Reader reader) throws ParseException;
}
